Computer vision is a field that includes methods and systems for acquiring, analyzing, processing, and understanding images (e.g., real world image captures) to provide an event or result. For example, one computer vision technique is Simultaneous Localization and Mapping (SLAM), which can process the input of a single camera and continuously build up a three dimensional (3D) model (e.g., reconstructed map) of an environment as the camera moves in Six Degrees of Freedom (6DOF). SLAM systems can simultaneously track the pose of the camera with respect to the 3D model while mapping the 3D model. However, when a new (un-mapped) object occludes an existing 3D model, SLAM systems may produce errors as the SLAM system attempts to track the pre-existing/reconstructed 3D model behind the new occluding object. Errors can occur when the SLAM system attempts to track features of the 3D model because the features occluded by the new object can no longer be tracked by the SLAM system. In some cases, occlusion errors cause SLAM systems to fail in tracking the 3D model and the occluding object is not reconstructed.
Eliminating the tracking errors that occur from the new object occlusion typically requires extensive processing of the scene beyond what may be possible in real time on certain devices (e.g., limited processing capability portable or mobile devices). For example, detecting occluding objects typically requires verifying visibility of every map point in the camera's field of view. This extensive visibility verification involves searching for correspondence of every reconstructed map point to every point in a current camera image. Therefore, new and improved occlusion handling for computer vision is desirable.